home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
UTILITY
/
ANSIPLUS.ARJ
/
ANSIPLUS.DOC
< prev
next >
Wrap
Text File
|
1992-06-09
|
84KB
|
2,067 lines
ANSIPLUS Enhanced Console Device Driver
User's Guide, Version 2.00
Shareware Documentation
June 9, 1992
COPYRIGHT (C) 1991, 1992 by Kristofer Sweger
P.O. Box 378, Larkspur, CA 94977
All Rights Reserved
The ANSIPLUS console device driver and supporting utility programs are
Copyrighted (C) 1992 by Kristofer Sweger. This software and accompanying
documentation are protected by United States Copyright law and also by
International Treaty provisions. The ANSIPLUS computer program and this
documentation may not be reproduced, copied, disclosed, or transferred in any
form (machine-readable or photo-copy included), except as provided here under
"Limited License" (see page 3), without the express prior written approval of
the author.
U.S. Government Information: Use, duplication, or disclosure by the U.S.
Government of the computer software and documentation in this package shall be
subject to the restricted rights applicable to commercial computer software as
set forth in subdivision (b)(3)(ii) of the Rights in Technical Data and Computer
Software clause at 252.227-7013 (DFARS 52.227-7013). The Contractor/
manufacturer is: Kristofer Sweger, P.O. Box 378, Larkspur, CA 94977.
DISCLAIMER OF WARRANTY
Kristofer Sweger makes no warranty of any kind, express or implied, including,
without limitation, any warranties of performance, merchantability and/or
fitness for a particular purpose. This software and accompanying documentation
are provided "as is," without warranty of any kind. The entire risk as to
results and performance is assumed by you.
Kristofer Sweger shall not be liable for any damages, whether direct, indirect,
consequential or incidental arising from a failure of the ANSIPLUS programs to
operate in the manner desired by the user. Nor shall Kristofer Sweger be liable
for any data, property or other damages which may be caused directly or
indirectly by use of or inability to use the software, even if Kristofer Sweger
has been advised of the possibility of such damages. In no event shall the
liability for any damages exceed the price paid for the license to use the
software, regardless of the form and/or extent of the claim. By using the
software you agree to this.
The author further reserves the right to revise or alter the contents of this
documentation or the ANSIPLUS software package from time to time without
notifying any person or group of such changes or alterations.
The Limited License and Disclaimer of Warranty shall be construed, interpreted
and governed by the laws of the State of California.
TRADEMARKS
Microsoft and MS-DOS are registered trademarks of Microsoft Corporation. IBM
and PS/2 are registered trademarks of IBM Corporation. Other trademarked names
may appear in this manual. The author states that he is using the trademarked
names only for editorial purposes, and to the benefit of the trademark owner,
with no intention of infringing upon any trademark.
Table of Contents
I. Introduction
Product description . . . . . . . . . . . . . . . . . . . . . 1
Registration . . . . . . . . . . . . . . . . . . . . . . . . 2
Limited License . . . . . . . . . . . . . . . . . . . . . . . 3
Technical Support . . . . . . . . . . . . . . . . . . . . . . 4
II. Features summary
VGA/EGA display features . . . . . . . . . . . . . . . . . . 5
Integrated console functions . . . . . . . . . . . . . . . . 6
Other ANSIPLUS features . . . . . . . . . . . . . . . . . . . 7
III. Installing ANSIPLUS
Installing the device driver and utility programs . . . . . . 10
Changing the ANSIPLUS startup configuration . . . . . . . . . 12
IV. Using ANSIPLUS
Special keyboard functions . . . . . . . . . . . . . . . . . 18
Selecting and defining colors . . . . . . . . . . . . . . . . 19
Controlling other ANSIPLUS features . . . . . . . . . . . . . 23
Editing ANSI escape sequence programs and files . . . . . . . 26
V. ANSIPLUS escape sequences
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 27
VI. Technical notes
ANSIPLUS and Windows 3 . . . . . . . . . . . . . . . . . . . 29
ANSIPLUS extensions and the ANSI standard . . . . . . . . . . 30
Escape sequence recognizer enhancements . . . . . . . . . . . 30
Direct access to video RAM vs. BIOS calls . . . . . . . . . . 31
Installation checks . . . . . . . . . . . . . . . . . . . . . 31
Hooked interrupts . . . . . . . . . . . . . . . . . . . . . . 32
I. INTRODUCTION
The DOS console device driver provides the critical interface between you and
your personal computer. It controls the output you see from DOS and accepts
your keyboard input, and you spend a whole lot of time using it. Unfortunately,
the standard CON and ANSI device drivers supplied with DOS do not take full
advantage of the capabilities of the major video controllers currently in use:
VGA and EGA. In addition, the standard personal computer BIOS has limitations
that have had to be addressed individually by several TSR programs or device
drivers, by work-arounds and special drivers in major application programs, or
by development of graphic user interfaces such as Windows.
The ANSIPLUS console device driver integrates major console elements missing
from DOS and the personal computer BIOS into a single compact device driver that
can easily be controlled and personalized. With ANSIPLUS installed:
* User interaction with the DOS command shell and many applications will be
significantly improved.
* Screen output will be faster than with DOS's ANSI and non-ANSI drivers.
* The user will have complete control over colors and VGA/EGA capabilities.
* Users of Windows 3 will have access to ANSIPLUS features in all windowed
and full screen DOS sessions.
* The user will also benefit from all the other display and keyboard features
provided by ANSIPLUS.
This is a fully functional Shareware copy of the ANSIPLUS product. As such, it
is made available to the general computing public for evaluation. Users are
licensed to operate ANSIPLUS on their personal computers for the purpose of
test and evaluation for a limited trial period of thirty days. After
evaluation, if the user decides the ANSIPLUS programs are not of sufficient
merit to warrant purchase through registration with Kristofer Sweger, all
ANSIPLUS programs should be removed from their personal computer. If ANSIPLUS
is found to be useful and is in regular use, then registration is required.
This manual is organized in six chapters:
* Chapter 1 introduces ANSIPLUS and covers product licensing and support;
* Chapter 2 summarizes ANSIPLUS features for those who want to know what it
can do;
* Chapter 3 discusses installing and configuring ANSIPLUS on your computer;
* Chapter 4 describes keyboard functions and utility programs accessible to
users after installation;
* Chapter 5 lists ANSIPLUS escape sequences; and
* Chapter 6 contains several technical notes of interest to programmers and
others.
1
REGISTRATION
By paying the registration fee for ANSIPLUS, registered users are granted a
license to use the software on any single computer system. Site licenses for
use of ANSIPLUS on multiple computers are available upon request at a
substantially reduced fee per machine. Registered users also receive:
* A registered copy of the most recent version of ANSIPLUS. Registered
copies of ANSIPLUS don't have that pesky time delay in the sign-on message.
The registered version is also NOT Shareware, so it may not be copied for
others.
* A printed copy of the ANSIPLUS manual, which contains additional detailed
documentation on using the ANSIPLUS Escape sequences.
Registration helps support further improvements to ANSIPLUS. The easiest way to
register ANSIPLUS is to print out the registration form file, REGISTER.pls, fill
it out, and mail it with a check ($39.00 for one copy) to:
Kristofer Sweger
P.O. Box 378
Larkspur, CA 94977
Be sure to specify whether you want a 5.25" or 3.5" diskette, and to include the
mailing address for your registered ANSIPLUS and manual. California residents
must also add sales tax.
2
LIMITED LICENSE
Non-registered users of ANSIPLUS are licensed ONLY to evaluate the programs and
device driver for up to thirty days for the sole purpose of determining whether
or not it meets their requirements. All other use requires registration. Any
other use of non-registered copies of ANSIPLUS by any person, business,
corporation, or government organization, is not permitted.
Registered copies of ANSIPLUS may NOT be copied for others. However, permission
is hereby granted for individuals to copy the non-registered ANSIPLUS package
for their own use (for evaluation and backup purposes) or for other individuals
to evaluate, provided all of the following conditions are met:
* The ANSIPLUS package, including all related program and documentation files,
cannot be modified in any way and must be distributed in its entirety, with
no additions. The following computer files constitute the ANSIPLUS Shareware
package:
ANSIPLUS.sys ANSIPLUS console device driver
ANSIPLUS.doc ANSIPLUS Shareware documentation
SETCOLOR.exe Color control utility program
SETAPLUS.exe Driver features control utility program
ANSICOM.exe ANSI escape sequence editor
NEWAPLUS.exe ANSIPLUS bootup configuration program
APLUSLIB.exe Execution library for the utility programs
SETCOLOR.sch Color schemes file for SETCOLOR.exe
CONSETUP.com Sample escape sequence program
PUSHVID.com Save current video mode, video page and colors
POPVID.com Restore saved video mode, page and colors
INSTALL.exe Installation program
INSTALL.inf Installation control file
REGISTER.pls ANSIPLUS registration form
README.pls Release notes
* No price or other compensation may be charged for the ANSIPLUS package. A
distribution cost may be charged for the cost of the diskette, shipping and
handling, as long as the total per disk does not exceed US $6.00 in the U.S.
and Canada, or US $10.00 internationally.
* The ANSIPLUS package cannot be bundled or included with other goods or
services, nor can it be included in any commercial software packaging offer,
nor can it be "rented" or "leased" to others, without specific prior written
agreement from Kristofer Sweger.
All rights not expressly granted here are reserved to Kristofer Sweger.
3
TECHNICAL SUPPORT
We want our users to be satisfied, and we find the interaction with real users
of ANSIPLUS to be of great value. Many ANSIPLUS features are the result of user
input. If you have a problem evaluating ANSIPLUS or want to make a suggestion,
comment, or complaint, please contact us immediately. We can be reached by mail
at P.O. Box 378, Larkspur, CA 94977, or by telephone at 415/924-5407.
The ANSIPLUS technical support telephone line (415/924-5407) can be called
weekdays from 10:00 AM to 5:00 PM, Pacific Time. We ask that you recognize that
this service can easily be overwhelmed by calls with questions that are already
answered in the documentation provided. When you do call, please try to have
all your questions (and any necessary supporting data) ready so that we can deal
with them efficiently in one short session. If you are reporting a software
problem, we will need specific information about your computer system and how to
recreate the problem.
4
II. FEATURES SUMMARY
Although many of the ANSIPLUS features described here may seem technical, each
meets a need, and they all cooperate as parts of one compact console device
driver. In this chapter, they have been collected into three major groups:
VGA/EGA display features, integrated console functions, and other ANSIPLUS
features. The remaining chapters give details regarding specific features.
VGA/EGA DISPLAY FEATURES
The ANSIPLUS enhanced DOS console device driver is tailored to take advantage of
VGA and EGA display capabilities:
Mode recognition For any VGA/EGA display mode, the driver can properly
address the entire screen. ANSIPLUS automatically recognizes
and adapts to various VGA or EGA screen modes, both text and
graphics, including extended modes with large numbers of
lines and/or columns. ANSIPLUS can also automatically adapt
to and compensate for older video controllers with very
limited numbers of colors or shades (i.e., CGA or monochrome
boards).
Speed In text and in 16-color VGA/EGA graphics display modes, the
driver bypasses the ROM BIOS and goes straight to the video
RAM, so it can operate much faster than either the original
DOS console driver or the DOS ANSI driver. Programs that
write large character strings to the standard output
(console) file handle in "raw" mode can generate their
output many times faster.
Color selection ANSIPLUS provides full control over colors. In color text
modes, sixteen foreground and background colors are
supported. In 16-color VGA/EGA graphics modes, ANSIPLUS
allows mixing of background colors, for a total of 136
possible background colors. In 256-color VGA graphics modes,
all 256 foreground and background colors are supported.
Palette control Control over VGA/EGA palette registers and VGA DAC registers
allows selecting and maintaining colors using the video
controller's full capabilities. The driver traps all video
mode changes, and installs the palette and/or DAC colors of
the user's, or of ANSIPLUS's color scheme. Applications that
set their own palettes will continue to do so, but those
that do not can now use custom color choices. Blinking can
also be kept disabled to allow 16 background colors in text
modes.
Text size ANSIPLUS allows selection of alternate VGA/EGA character
sets, giving control over the character height, and thus the
number of text lines used in any VGA/EGA video mode.
Smooth scrolling ANSIPLUS supports smooth scrolling of the screen (for fast
CPUs with 16-bit VGA/EGA), so the screen can be read while
it is moving. Options are provided to control the use and
rate of smooth scrolling.
5
Extended modes The ANSI Set Mode control sequence has been expanded to
allow specifying VGA/EGA modes that are based on full AX
and/or BX CPU register values, extending ANSI-type control
to Super VGA/EGA controllers that require such register
settings. Super VGA controllers that conform to the VESA
standard are also automatically recognized, and VESA
extended set mode calls are made by the ANSIPLUS driver for
modes of 100h or higher.
INTEGRATED CONSOLE FUNCTIONS
The ANSIPLUS driver efficiently integrates several useful console functions that
in the past had to be provided by separate TSR programs or device drivers:
Screen saver A screen saver blanks the VGA/EGA screen after several
minutes of screen, keyboard and mouse inactivity. The screen
can be brought back by any keystroke (including shift keys)
or by mouse movement or buttons. The screen saver feature
can be enabled or disabled by the user, and is automatically
disabled in certain situations.
Keyboard buffer As many PC users eventually discover, the standard personal
computer BIOS provides a keyboard input type-ahead buffer of
only 15 characters, which is enough for only the shortest of
commands. ANSIPLUS extends this by 113 keystrokes for a
total type-ahead of 128 keystrokes (configurable for more if
necessary).
Repeated keys Another problem with the standard BIOS keystroke buffer
occurs when keys are held down too long, and the buffer
rapidly fills with repeated (or "typeamatic") keys, which
are then processed long after the key is lifted. Spreadsheet
users often experience this when holding down one of the
arrow keys. ANSIPLUS disables repeat key type-ahead, but
does allow repeat keys that are immediately consumed by
programs, so the type-ahead buffer cannot be filled with
unintended keystrokes. Repeated digits are also suppressed,
making it impossible to inaccurately enter a number just
because a key is held down too long.
Scroll-back Every DOS user sooner or later needs to recall something
that was on the screen, but has scrolled off the top.
Programmers often encounter this with error messages, and
other users with file directory listings. To address this
problem, ANSIPLUS supports screen scroll-back: all lines
scrolled and cleared from the screen in text modes are
captured by the ANSIPLUS driver so that the user can stop at
any time and browse through recent screen contents.
Scroll lock Large directory listings and other rapidly generated screen
output can often fly by on the screen too fast to be read.
Hitting the Scroll Lock key will freeze the screen when
ANSIPLUS or the BIOS next tries to scroll it. When the
screen is frozen, several keystroke options allow control
over subsequent screen output.
6
Beep tone The standard personal computer BIOS Control-G beep tone
generator waits in a programmed loop until sound output is
completed. Sometimes, error or other conditions detected in
a running program can generate a rapid sequence of beeps,
and the computer will just hang for what seems an eternity,
beeping away. ANSIPLUS has an interrupt-controlled tone
generator that lets the beep tone be finished in parallel
with subsequent processing. Multiple beeps are ignored if a
tone is currently being generated, so programs cannot be
slowed down by a rapid series of beeps. Options are provided
for defining the tone and using or not using the tone
generator.
OTHER ANSIPLUS FEATURES
Other ANSIPLUS features include:
User control Menu driven utilities give the user full control over
selected colors, color palettes, border colors, video modes,
text height, key reassignment, beep tone definition, driver
table sizes, and all other configurable features.
Loading options At load time, the ANSIPLUS driver can divide itself into
sharable code (about 14k) and unshared code/data (about
3.5k) sections, placing the shared code in either XMS upper
memory blocks (from 640K to 1M) or in high memory (1M to
1M+64K) along with DOS 5.0, and leaving only the unshared
part in low memory.
Bright key echo ANSIPLUS highlights user-typed keys when they are displayed
by DOS on the screen, giving a clear visual separation of
typed entries from computer output. If unwanted, this
feature can be disabled.
ANSI support All DOS ANSI.sys escape sequences are supported, plus
additional ANSI/VT-100 escape sequences for clearing the
screen, erasing lines, inserting and deleting lines, and
inserting and deleting characters.
Mono/CGA support ANSIPLUS should give reasonable and readable displays in all
display modes, including those with a very limited number of
colors or shades. ANSI-type programs written in terms of 16
colors will be executable on machines with simpler video
capabilities, if ANSIPLUS is running on that machine.
7
Key processing ANSIPLUS includes several special key processing options:
(1) the shift-alphabetic keys can cause Caps-Lock to
unlock, much like a typewriter releases its shift lock
whenever a shift key is pressed;
(2) the Enter key can restore Caps-Lock after it was
unlocked by a shift-alphabetic key, thus restoring Caps
on completion of an "entry";
(3) Control-C can cause a Control-Break, for those users who
prefer the Control-C key; and
(4) the DOS "Non-Destructive" input function can return the
last key in the keyboard buffer instead of the first, so
that it always reflects what has last been typed.
Line wrapping When the length of a line displayed on the screen exactly
equals the width of the screen, the standard DOS console
device drivers cause a blank line to be output. ANSIPLUS
suppresses output of these unintended blank lines.
Graphics cursor The DOS console drivers do not show a cursor on the screen
when in graphics modes. ANSIPLUS can display a cursor when
keyed entries are requested by DOS in a graphics mode.
BIOS TTY ANSI ANSIPLUS provides an option to trap and execute ANSI control
sequences in BIOS Int 10h Write TTY output as well as in DOS
standard console output.
Transparent mode On occasion, it is undesirable to have the ANSI driver fill
in the background color of each character space as it writes
characters. ANSIPLUS includes a "transparent" background
mode that will write each output character in the current
foreground color over whatever background is currently at
the cursor position.
Text treatments In 16-color graphics modes, ANSIPLUS can apply bold,
underline, black shadow, slant (italics), or black outline
text treatments, in any combination, to output characters
for emphasis or improved legibility.
Esc pass-through Unlike the ANSI.sys driver, the Esc character is trapped by
ANSIPLUS only when followed by a left bracket ("["), so
programs that write Esc (a left arrow) to the screen will
continue to do so after ANSIPLUS is installed.
VGA mono emulation Because application developers with VGA color monitors
sometimes need to see how their systems will look when run
with a monochrome VGA monitor, ANSIPLUS provides an option
to emulate a monochrome VGA monitor on a color monitor.
8
Status reporting To allow programs to query ANSIPLUS about more than just the
current cursor location, the device status report has been
extended to report information about the current video mode,
video page, numbers of rows, columns and colors, current or
default definition of colors, and more.
Installation checks To facilitate developing applications that can use ANSIPLUS
features, ANSIPLUS responds to standard Int 2Fh ANSI.sys
installation checks, and includes extensions that can
distinguish ANSIPLUS from ANSI.sys.
9
III. INSTALLING ANSIPLUS
INSTALLING THE ANSIPLUS DEVICE DRIVER AND UTILITY PROGRAMS
The ANSIPLUS package includes an installation and configuration program called
INSTALL.exe, which should properly handle most installations. INSTALL analyzes
the runtime environment and CONFIG.sys of the target drive, locates the source
files, copies ANSIPLUS to the target drive (or to any sub-directories of the
user's choice), and updates CONFIG.sys.
For those who are not content to use default driver settings, the configuration
section of the INSTALL program then lets the user set the startup (boot) driver
table sizes, colors, and feature settings, as well as high memory loading
options that affect CONFIG.sys. These configurations can be performed either at
installation time, or any time later on an installed drive by using the
NEWAPLUS.exe program. Context sensitive help (via the F1 key) is provided for
all entries. Startup configuration changes are described in the following
section, starting on page 12.
The INSTALL program gives an opportunity (via the Installation menu) to set the
destination directory for each installed file or for classes of files. If the
directory is not specified for a file, the following assumptions will apply:
* If an ANSIPLUS file name matches the name of a file in the default directory,
root directory, or on the system PATH of the destination drive, then the
ANSIPLUS file will be copied over the matched file (i.e., updated). This is
intended to make installation of ANSIPLUS updates a snap.
* New files are added to a directory for each class of file (i.e., driver,
utility program, or documentation/other). If any file in the class is being
updated, then the class directory will be the same as the updated files.
Otherwise, the class directory will be "\ANSIPLUS".
It is recommended that you put all of the ANSIPLUS utility programs (SETCOLOR,
SETAPLUS, ANSICOM, NEWAPLUS and APLUSLIB) on your system PATH so that they can
be used easily. It is critical that the execution library, APLUSLIB.exe, be
located either in the same directory as the other utility programs or on the
system PATH. If it is not, the utility programs will not run! You may also want
to place the ANSIPLUS.sys device driver in the root directory.
Before installing ANSIPLUS, or any other new device driver, be sure you have a
bootable floppy disk as insurance against trouble getting your system to run
after the device driver is installed.
10
The following three examples illustrate using INSTALL to install ANSIPLUS:
* If you received ANSIPLUS on a floppy disk and want to install it on your hard
disk, use the following installation procedure:
(1) Set the default directory to the hard disk (i.e., get a C> prompt).
(2) Insert the ANSIPLUS diskette in drive A: (or other floppy drive).
(3) Enter the following command:
A:INSTALL
* If you received ANSIPLUS as a ZIP file, use the following procedure:
(1) Create a sub-directory on the hard disk to contain the unzipped
ANSIPLUS files. Move ANSIPLUS.zip to this directory and make it be the
default directory.
(2) Unzip the files into the directory with the command:
PKUNZIP ANSIPLUS
(3) Then enter the command:
INSTALL
* To install ANSIPLUS on bootable disk B:, from hard disk directory C:\APLUS,
enter the command:
C:\APLUS\INSTALL B:
11
CHANGING THE ANSIPLUS STARTUP CONFIGURATION
Changes to the startup configuration for ANSIPLUS are made with the NEWAPLUS.exe
program. (INSTALL also lets you make these changes, but INSTALL.exe is actually
a tiny program that calls NEWAPLUS.exe to perform the installation.) You run
NEWAPLUS with a command of the form:
NEWAPLUS <target>
where <target> is the drive letter for a bootable diskette or hard disk
partition with ANSIPLUS installed. If <target> is omitted, the current default
drive will be used or, if it isn't bootable, the drive referred to by the
COMSPEC system environment variable. After NEWAPLUS confirms that the target
disk contains ANSIPLUS, you are presented with a startup configuration menu that
has nine revision option groups:
Initial Colors
* Color selection sub-menus let you choose from the current 16-color palette
the screen colors that will be used for text foreground and background when
the system starts up. ANSIPLUS maintains two sets of foreground and
background colors: those that are currently on the screen, and "default"
colors to be applied when an ANSI Set Graphics Rendition reset (i.e., Esc
[0m) is detected. The startup selections for both color combinations can be
controlled from this sub-menu.
Palette Definition
* The color palette determines the precise colors you will see in 16 color
video modes. ANSIPLUS maintains two palettes: the current palette on the
screen, and a default palette that is loaded when ANSIPLUS first starts and
whenever the video display mode is changed. All changes you make using the
NEWAPLUS color palette option will apply to the default palette.
Border Color
* The border color is generated for the "overscan" region on the outside edges
of the screen. You can select any available color as the default border
color, which will be installed when ANSIPLUS starts up and whenever the
display mode is set.
12
Loading Option
ANSIPLUS can be loaded into memory up to four different ways, depending on
your computer's capabilities and what is contained in CONFIG.sys:
* ANSIPLUS can be loaded into low memory below 640K. This is the default.
* ANSIPLUS can load itself into upper memory blocks. At load time, the driver
can divide itself into two sections: sharable code totaling about 14k, and
unsharable code/data totaling about 3.5k. The shared code can be placed in
either XMS upper memory blocks (from 640K to 1M) or in high memory (1M to
1M+64K) along with DOS 5.0, leaving only the unsharable 3.5k in low memory.
Because all ANSIPLUS driver data remains in low memory as part of the DOS CON
driver, it will be localized under Windows 3.0. Under DOS 5.0, this option
should work whether DOS=UMB appears in CONFIG.sys or not. The following
CONFIG.sys command loads ANSIPLUS into the XMS upper memory blocks:
DEVICE=ANSIPLUS.sys /U
* Under DOS 5.0, with the DOS=HIGH line in CONFIG.sys, ANSIPLUS can load itself
into high memory addressed just above 1 megabyte. This area contains 64k, but
DOS may require only about half of it, leaving the remainder either unused or
allocated to disk buffers or other tables. ANSIPLUS can load itself into this
area and share the space with DOS. However, when this is done, certain
(antique) programs that assume memory addresses over one megabyte will "wrap
around" to addresses starting at zero may not operate correctly. If you
experience any problems, load ANSIPLUS into XMS upper memory blocks instead.
The following CONFIG.sys command will load ANSIPLUS into the DOS 5.0 high
memory area:
DEVICE=ANSIPLUS.sys /H
* ANSIPLUS can be loaded high by DEVICEHIGH or equivalent. Users of Windows 3.0
and EMM386, QEMM, or DOS 5.0 should note: With DOS 5.0 (using DEVICEHIGH and
EMM386), or with other XMS drivers such as QEMM (using LOADHI), ANSIPLUS can
be loaded into upper memory blocks above 640k to provide a 17k larger program
area below 640k. However, if Windows 3.0 will be run in 386 Enhanced mode, it
is strongly recommended that ANSIPLUS (or any other ANSI driver) not be
loaded into high memory by these methods. This is because Windows 3.0 does
not localize the XMS upper memory block area above 640k for its virtual
8086's, and so only one global copy of ANSIPLUS would be shared among all
virtual machines. This can cause trouble: if, for example, a program in one
window selects colors, then those colors would also be in force for all DOS
programs in other windows! This localization problem may have been fixed in
Windows 3.1.
13
Color Control
* The ANSIPLUS driver ordinarily traps all video mode changes and installs the
palette and/or DAC colors of the user's, or of ANSIPLUS's default color
scheme. Applications that set their own palettes will continue to do so, but
those that do not will use the installed color choices. If this feature is
disabled, the VGA/EGA controller manufacturer's colors will be loaded when
the video mode changes.
* In color text modes, the VGA and EGA allow either sixteen background colors
with no blinking foreground text, or eight background colors with foreground
text that may or may not blink. In monochrome text mode 07h, when blinking is
disabled there are three backgrounds possible: black, gray or white, and with
blinking enabled there are two: black and gray. If blinking is disabled,
ANSIPLUS will display sixteen (or three) background colors, and when it is
enabled, you will see only eight (or two) background colors.
* ANSIPLUS highlights user-typed keys when they are displayed on the screen,
giving a clear visual separation of typed entries from computer output. Over
dark backgrounds, the key is shown in white, and over light backgrounds it is
shown in black. If this feature is not wanted, it can be disabled.
* Because application developers with VGA color monitors sometimes need to see
how their systems will look when run with a VGA monochrome monitor, ANSIPLUS
provides emulation of monochrome monitor VGA on a color monitor. In normal
operation, this feature should be disabled.
Display Control
* The ANSIPLUS screen saver blanks the VGA/EGA screen after several minutes of
screen, keyboard and mouse inactivity. The screen is brought back by any
keystroke, including shift keys, or, if a mouse is connected, by moving it or
pressing a button. The screen saver is automatically disabled under Windows
and when certain games or other programs that take over the timer are
running, and does not interfere with any known programs. However, if this
feature is not desired, it can be turned off.
* The time of inactivity before the screen goes blank is configurable between
one and twenty minutes.
* During periods of keyboard inactivity, ANSIPLUS's screen saver uses MS mouse
Int 33h calls to test the status of the mouse. In the unlikely event these
calls interfere with the mouse driver, they can be disabled.
* On the IBM PS/2, the mouse is usually connected to the pointing device port,
and mouse activity will cause interrupts on the Mouse Event interrupt number
74h, so ANSIPLUS monitors this interrupt to unblank the screen. If the screen
fails to go blank after a long idle period, or if this interrupt is used for
another purpose, this feature should be disabled.
* The DOS console drivers do not show a cursor on the screen when using a
graphics mode. ANSIPLUS displays a pseudo-cursor when keyed entries are
requested by DOS in a graphics mode. If this feature interferes with the
appearance of a graphics mode program, it can be disabled.
14
* Programs that write screen output using ROM BIOS Int 10h Function 14 (Write
TTY) ordinarily cannot use ANSI Escape sequences for screen control. ANSIPLUS
includes a feature to allow this.
* When the VGA/EGA video controller does not allow setting a palette register
unless a vertical retrace is in progress, or when "snow" or other problems
occur during palette color changes, ANSIPLUS provides an option to wait for a
vertical retrace whenever setting a palette register. Otherwise, this feature
should remain disabled.
* ANSIPLUS contains an internal stack for saving and restoring video context
information (rows and columns, colors, display modes, etc.). The default size
allows 25 pushes, but this can be configured to a larger value if needed.
Screen Scrolling
* ANSIPLUS uses the Scroll-Lock key as a hot key for freezing fast screen
output and for activating screen scroll-back. If these features are not
desired, or to run those few applications that use Scroll-Lock for other
purposes, the ANSIPLUS Scroll-Lock key can be disabled. However, before you
completely disable ANSIPLUS's Scroll-Lock key, try the Alt-Scroll-Lock
combination instead (see next option).
* An alternative hot key is Alt-Scroll-Lock. If this key is enabled, the Alt
key must be pressed simultaneously with the Scroll-Lock key to cause the
ANSIPLUS Scroll-Lock function to be activated. If it is disabled, the
Scroll-Lock key will function with or without any other simultaneous key.
* As lines are scrolled off the top of the screen, the ANSIPLUS driver can save
them for later viewing. This viewing is called screen scroll-back. Most of
the time this is a very useful and unobtrusive feature, but if it is
undesired, or if storage of the saved lines in unused portions of the video
RAM is found to interfere with something, it can be disabled.
* On most computers, screen scroll-back should operate correctly under Windows.
However, a few (buggy) video drivers for Windows 3.0 do not provide a full
32k of text RAM to DOS applications running in a window, and this can be
disastrous when ANSIPLUS tries to save or view lines for scroll-back. Because
of this, the default setting for scroll-back under Windows is to be
disabled. If you run all DOS applications full screen, or if Windows and
scrolling-back in a window work correctly in an experiment on your system,
this feature should be enabled.
* ANSIPLUS captures for scroll-back all standard DOS output that is scrolled
off the top of the screen or cleared from the screen. An option is provided
to capture full lines scrolled off the top by BIOS calls, as well as screens
not containing DOS output, when they are cleared by BIOS call.
* Every time that video page 0 (the normal video page for all DOS output) is
cleared, the first through last non-blank lines on the screen (plus one above
and below) are captured for scroll-back. When the second and higher video
pages are cleared, they will not be saved unless lines have been scrolled off
the top. An option is provided to capture the higher video pages too when
they are cleared.
15
* ANSIPLUS stores captured screen lines in unused parts of the video RAM, with
usage based on whether a display page has ever been selected for display.
Virtually all text mode applications select a page before filling it with
text, so ANSIPLUS should generally know what is used and what isn't. However,
if an application fills the second or a higher video page with text before
that page has ever been selected, ANSIPLUS will clear it when it is selected.
This option may fix such a problem by protecting the second video display
page from scroll-back storage, but maximum capacity for scroll-back will be
reduced by one page.
* Smooth scrolling can gradually move the entire screen's text up so it can be
read while it moves. This feature can also be toggled on and off by the
Shift-Scroll Lock key combination. Smooth scrolling will appear unacceptably
choppy on computers with lower powered CPUs and/or video controllers that
cannot move a full screen of text in the video RAM completely during a
vertical retrace. If this occurs, the feature should not be used.
* Smooth scrolling can be disabled under Windows. If smooth scrolling does not
perform well in full screen DOS sessions under Windows, or if there are other
problems, then this should be done.
* Because it takes time to smoothly scroll the screen, smooth scrolling of
large amounts of screen output can significantly delay the computer. An
option is provided to increase the scrolling rate when the smooth scrolling
operation is taking a significant proportion of the computer's time. This can
help, for example, to prevent data overruns when smooth scrolling is used
with a communications program that scrolls the entire screen.
Keyboard
* By default, ANSIPLUS increases the keyboard buffer capacity to 128
characters, which should hold at least as much as most users can type ahead
accurately. To expand the computer's keyboard buffer capacity, an extension
buffer is retained within ANSIPLUS, and whenever the ROM BIOS buffer has
space available for keys held in the ANSIPLUS buffer, they are moved into the
standard ROM BIOS buffer. You configure this buffer by specifying the total
number of keys to be buffered.
* ANSIPLUS has the ability to translate single keystrokes to full commands or
other pre-determined key sequences. This feature is called key reassignment,
and it can be enabled or disabled without affecting the contents of the key
reassignment tables stored within the ANSIPLUS device driver.
* The space allocated for storing ANSI keystroke reassignments may also be
configured. Each key reassignment requires approximately four bytes plus the
length of the reassignment. You configure the total table size in bytes.
* Normally, the Caps Lock key locks the alphabetic keys in upper case, and when
a shift key is held down, letters are entered in lower case. This continues
until Caps Lock is pressed again to unlock the Caps, and can often be
confusing if you forget that Caps were locked. ANSIPLUS has an option to have
shift-alphabetic keys cause the Caps to unlock, much like a typewriter
releases its shift lock whenever a shift key is pressed.
16
* In many cases, when Caps Lock has been released by a shift-alphabetic key
combination, mixed upper and lower case characters are needed for only a
single entry, and Caps Lock should be reinstated thereafter. ANIPLUS includes
an option to turn Caps Lock back on again when the Enter key is pressed after
Caps were unlocked by a shift-alphabetic key, thus restoring Caps Lock on
completion of an "entry."
* For those users who find it more convenient to break out of programs with the
Control-C key combination than with Control-Break, ANSIPLUS has an option to
generate a keyboard break whenever Control-C is entered.
* The "Non-Destructive" input function of DOS's BIOS reads an input key from
the keyboard unofficially just to see what it is, allowing it to really be
read later. This function is used to see what has been typed, and to read it
or flush the keyboard buffer only if it matches some criterion (such as
Escape or Control-C). Because the standard DOS keyboard driver always looks
at the first key in the buffer, if it doesn't meet the criterion, no matter
what is typed later will not be checked. ANSIPLUS gets around this with an
option to return the last key from the buffer instead of the first.
Tone Definition
* The ANSIPLUS driver includes a timer-interrupt controlled Control-G beep tone
generator that lets the beep tone be finished in parallel with subsequent
processing. Multiple beeps are ignored if a tone is currently being output,
so programs cannot be slowed down by a rapid series of beeps. The tone
generator is used for both standard DOS console output and BIOS Int 10h Write
TTY calls. If the tone generator is disabled, the original DOS beep tone will
be used.
* When Windows 3 is running in 386 mode, and a DOS program running in the
background outputs a Control-G, the background program's virtual 8086 may not
be running fast enough to accurately time the tone. Because of this, the tone
can drag out and sound strange. Disabling ANSIPLUS tone generation under
Windows restores the original Windows sound driver, but makes the tone
frequency and duration non-configurable.
* The beep tone definition is stored in a table in the ANSIPLUS driver that
requires four bytes per frequency and duration. You can configure the size of
this table by specifying the maximum number of notes allowed in the beep.
17
IV. USING ANSIPLUS
This chapter describes your controls over ANSIPLUS when it is running. Four
subjects are covered: special keyboard functions; selecting and defining colors
with the SETCOLOR.exe utility program; controlling other ANSIPLUS features with
the SETAPLUS.exe utility program; and creating and editing ANSI-type escape
sequence programs and files with the ANSICOM.exe program.
SPECIAL KEYBOARD FUNCTIONS
ANSIPLUS uses special keyboard control to implement its scrolling functions. To
activate these, the Scroll-Lock (or Alt and Scroll-Lock) key is used as a hot
key toggle:
Scroll-Lock enables or disables screen scroll freezing and scroll-back
Shift-Scroll-Lock enables or disables smooth scrolling
When your Scroll-Lock toggle is recognized by the computer, you will hear a
short tone. When the screen is frozen by Scroll-Lock, (as indicated by the light
on enhanced keyboards), normal key input is disabled and the following keys
apply:
Home Go to the top of the lines saved for scroll-back
PageUp Scroll up one page
Shift Scroll up one-half page tab
Up arrow Scroll up one line
End Go to the bottom (i.e., the original screen display)
PageDn Scroll down one page
Tab Scroll down one-half page
Down arrow Scroll down one line
Insert Save the current screen page for later scroll-back
Left View a lower numbered display page arrow
Right View a higher numbered display page arrow
Escape Cancel scroll lock, return to normal key processing
Scroll lock Cancel scroll lock, return to normal key processing
If you try to exceed the limit of travel up, down, left or right, a short low
pitched tone will sound. If you enter any key other than those above, you will
hear a short warbling sound, Scroll Lock will be canceled, the screen will
return to its normal display, and the key will be passed back to the running
program. If the screen was frozen during output, the PageDn, Tab and Down arrow
keys will allow one page, one-half page, and one line of additional output,
respectively, before freezing the screen again. Pressing a shift key will
release the screen as long as the key is held down.
18
SELECTING AND DEFINING COLORS
The SETCOLOR.exe utility program provides extensive control over colors for your
running system. With this program, the user can view the current colors, select
colors for use, create and apply named color schemes, edit the color palette,
set the border color, and save and load color definitions. SETCOLOR.exe is
executed by a command of the form:
SETCOLOR <keyword> [<keyword> ...]
where each <keyword> selects a foreground or background color or other option.
If no <keyword> is supplied, you are presented with a menu of choices:
* Color selection submenus let you choose from the current 16-color palette
the screen colors that will be used for text foreground and background.
ANSIPLUS maintains two sets of foreground and background colors: those that
are currently on the screen, and default colors to be applied when an ANSI
Set Graphics Rendition reset (i.e., Esc [0m) is detected. You can control
both color combinations from this sub-menu.
* The color palette determines the precise colors you will see in 16 color
video modes. ANSIPLUS maintains two palettes: the current palette on the
screen, and a default palette that is loaded when ANSIPLUS first starts and
whenever the video display mode is changed. You can control both palettes
using this option, but unless you specifically set the default for each color
you redefine, your colors will only apply until the next display mode change.
* The border color is generated for the "overscan" region on the outside edges
of the screen. Again, ANSIPLUS maintains both a current border color and a
default border color. You can select any available color as border color, and
can control both the current and default borders with this option. As for
palette changes, unless you specifically set the default border color, your
border color will apply only until the next display mode change.
From the command line, colors may be selected by name or code number, where
codes 0-15 identify the 16 palette colors, 128-143 select foreground colors, and
192-207 select background colors. The relationship between color names and code
numbers is depicted in Table 4-1:
19
+--------------------------------------------------------+
| Table 4-1 |
| Color Names and Codes |
+-------------------+--------+--------------+------------+
| | Color | Foreground | Background |
| Color Name | Code | Code | Code |
+-------------------+--------+--------------+------------+
| | | | |
| BLACK | 0 | 128 | 192 |
| DKGRAY | 8 | 136 | 200 |
| GRAY | 7 | 135 | 199 |
| WHITE | 15 | 143 | 207 |
| RED | 9 | 137 | 201 |
| DKRED | 1 | 129 | 193 |
| BROWN | 3 | 131 | 195 |
| YELLOW | 11 | 139 | 203 |
| GREEN | 2 | 130 | 194 |
| LTGREEN | 10 | 138 | 202 |
| CYAN | 6 | 134 | 198 |
| LTCYAN | 14 | 142 | 206 |
| BLUE | 4 | 132 | 196 |
| LTBLUE | 12 | 140 | 204 |
| MAGENTA or PURPLE | 5 | 133 | 197 |
| LTMAGENTA or PINK | 13 | 141 | 205 |
+-------------------+--------+--------------+------------+
In 256 color modes, you may also use 256-511 to select the foreground, 512-767
to select the background, or 0-255 after the BORDER keyword to select the border
color.
Several modifying keywords can assist the color selection:
DARK, DIM or NORMAL for low intensity colors,
LIGHT, BRIGHT or INTENSE for high intensity colors,
FOREGROUND or FGD for foreground following,
BACKGROUND, BGD, or ON for background following,
REVERSE to swap the current foreground and background,
BORDER for border color selection following, or
DEFAULT to select the current colors as the default colors.
If named colors or color codes 0-15 are specified without the foreground or
background keywords, then the first color is assumed to be the foreground and
the second the background. Keywords may also be shortened; the first partial
match will be used. Several examples may help to clarify these rules:
SETCOLOR bgd blue sets the background to dark blue
SETCOLOR light cyan blue default default colors are light cyan foreground
and blue background
SETCOLOR 7,0 gray foreground, black background
SETCOLOR bright green on blue high intensity green foreground, dark blue
background
SETCOLOR border cyan set the border color to cyan
SETCOLOR reverse reverses the current foreground and
background colors
SETCOLOR rev reverses foreground and background
20
Any unmatched keywords are checked against user-defined color schemes in a file
named SETCOLOR.sch. This editable ASCII text file, which should be placed in the
same directory as the SETCOLOR.exe program, contains any number of named color
schemes of the user's choice. User supplied color schemes are entered into the
file with a text editor, with each line entered in the form:
<name> = <keyword> [<keyword> ...]
where <name> is the name of the user supplied color scheme, and <keyword> is any
valid SETCOLOR program keyword or other option. Table 4-2 shows the SETCOLOR.sch
file included with ANSIPLUS as a sample.
+---------------------------------------+
| Table 4-2 |
| Sample Color Schemes File |
+---------------------------------------+
| evening = light cyan blue border 17 |
| night = light blue black border 17 |
| dawn = yellow cyan border 35 |
| daylight = light blue white border 17 |
| sun = bright red yellow border 46 |
| sky = blue light blue border 17 |
| forest = black green border 24 |
| earth = yellow brown border 38 |
| regal = pink purple border 21 |
| candycane = dark red pink border white|
| bw = gray black border dkgray |
+---------------------------------------+
A user color scheme may be specifically selected on the SETCOLOR command line by
preceding its name with the keyword SCHEME, for example:
SETCOLOR SCHEME JOE selects a color scheme named JOE
The SETCOLOR program also includes keyword options to reset, edit, load and save
the current color configuration. These include:
RESET Install defaults as the current colors
IBM or OEM Install the OEM VGA/EGA palette as the current colors
PALETTE Edit the color definitions for the 16-color palette
SAVEFILE <filename> Save the current 16-color definitions in a file
SAVE256 <filename> Save the 256 VGA DAC color definitions in a file
LOADFILE <filename> Load a color definition file
SAVECURRENT <file> Save the 16 current colors as an executable program
SAVEDEFAULT <file> Save the 16 default colors as an executable program
SAVEPROGRAM <file> Save both the current and default colors as a program
The SAVEFILE, SAVE256 and LOADFILE keywords generate and load color definition
files. The color definition files created by SAVEFILE contain 36 lines: 32 lines
define the red, green and blue intensities for colors 0 to 15, both current and
default, and the other four define the current and default foreground,
background and border colors. Files created by SAVE256 contain 512 lines: 256
for the default DACs and 256 for the current DACs. Table 4-3 is a sample of
lines from a SAVEFILE color definition file.
21
+------------------------------+
| Table 4-3 |
| Sample Color Definition File |
+------------------------------+
| Default = 142,196 |
| DBorder = 0,81,162 |
| DColor 2 = 16,162,81 |
| DColor 3 = 113,65,16 |
| DColor 4 = 0,0,105 |
| DColor 5 = 97,0,97 |
| Current = 135,192 |
| Border = 0,0,0 |
| Color 2 = 0,170,0 |
| Color 3 = 0,170,170 |
| Color 4 = 0,0,170 |
| Color 5 = 170,0,170 |
+------------------------------+
Users are free to edit color definition files to create their own colors, to
delete any lines from them, or to put the lines in any order except that all
default color definitions must precede all current color definitions in the
file. If no file name is given for a LOADFILE, SAVEFILE or SAVE256 request, the
file name SETCOLOR.def in the current directory will be used. LOADFILE checks
the system PATH for color definition files to be loaded, so any commonly used
color files can reside in a directory on the PATH.
The SAVECURRENT, SAVEDEFAULT, and SAVEPROGRAM keyword options create executable
".com" files that can be called later by name to install colors. These programs
can also be edited by the ANSICOM.exe utility program.
The SETCOLOR program also controls ANSIPLUS VGA monochrome monitor emulation.
Two keywords enable or disable this feature:
MONOCHROME begins VGA monochrome monitor emulation; and
COLOR ends VGA monochrome monitor emulation and restores colors.
And finally, SETCOLOR provides three reporting options:
SHOW displays the 16 current colors in a band across the screen
HELP gives a brief description of how to use the SETCOLOR program
SCHEME HELP lists the available color schemes in file SETCOLOR.sch
22
CONTROLLING OTHER ANSIPLUS FEATURES
The SETAPLUS.exe utility program is used to enable and disable various ANSIPLUS
features while the system is running. It can also be used to set the video
display mode, character height, video page and graphics mode text treatment
options, to define or list key reassignments, or to define the Control-G beep
tone. SETAPLUS.exe is executed by a command of the form:
SETAPLUS <keyword> [<keyword> ...]
where each <keyword> selects an ANSIPLUS feature or other option. As for the
SETCOLOR.exe utility, if no <keyword> is supplied, you are presented with a menu
of choices. These choices are shown in Table 4-4 below.
+------------------------------------------------------------------------+
| Table 4-4 |
| SETAPLUS Main Menu Options |
+-----------+------------------------------------------------------------+
| Report | Display current ANSIPLUS optional feature settings |
| Mode | Set the video display mode |
| Height | Set the displayed character height |
| Keyboard | Caps Lock, Ctrl-C and key read-ahead options |
| Assign | Key reassignment enable/disable option and key definition |
| Tone | Control-G beep tone generation options |
| Color | Mode set color, blink, bright key echo and VGA mono options|
| Display | Screen saver, graphics mode cursor and retrace wait options|
| Scrolling | Scroll-Lock, scroll-back and smooth scrolling options |
| Undo | Undo all feature changes since starting the main menu |
| Quit | Quit and return to DOS |
+-----------+------------------------------------------------------------+
From the SETAPLUS command line, you control each ANSIPLUS feature with its own
selection keywords. These selectors are shown in Table 4-5 on page 24. When
used in combination with the following keywords, each controllable feature can
be enabled and disabled easily:
ON, YES, or TRUE to enable the preceding feature,
ENABLE to enable all following listed features,
OFF, NO, or FALSE to disable the preceding feature,
DISABLE to disable all following listed features, and
RESET to set all features to their default values.
The following examples illustrate use of the SETAPLUS command line to control
ANSIPLUS features:
SETAPLUS bright off Disable bright key echo
SETAPLUS enable capsunlock saver Enable screen saver and Caps reset on
Shift-alpha
SETAPLUS reset Reset all features to their default status
23
+-------------------------------------------------------------------+
| Table 4-5 |
| SETAPLUS Feature Selection Keywords |
+------------+------------------------------------------------------+
| SETCOLORS | Install default (ANSIPLUS) colors on mode sets |
| NOBLINK | Enable 16-color text mode background (disable blink) |
| BRIGHT | Highlight echoed keys (bright key echo) |
| MONOCHROME | VGA monochrome monitor emulation |
| SAVER | Enable screen saver (blanker) |
| MSMOUSE | Use MS mouse Int 33h polling in screen saver |
| PS2MOUSE | Use PS/2 Int 74h mouse event interrupts in saver |
| PSEUDOCURS | Generate pseudo-cursor in VGA/EGA graphics modes |
| TTYTRAP | Trap ANSI escape sequences in BIOS Write TTY |
| RETRACE | Wait for retrace before setting palette registers |
| | |
| CAPSUNLOCK | Unlock Caps Lock with shift/letter key combination |
| CAPSRELOCK | Relock Caps with carriage return after shift/letter |
| CTRLC | Generate Control-Break when Control-C is entered |
| NDLAST | Read last key in buffer with non-destructive input |
| KEYASSIGN | Enable ANSI key reassignment |
| BEEP | Use ANSIPLUS Control-G beep tone generator |
| WINBEEP | Allow ANSIPLUS beep tone under Windows |
| | |
| LOCK | Allow Scroll Lock key to freeze screen |
| ALTLOCK | Require Alt-Scroll-Lock when freezing screen |
| SCROLLBACK | Enable scroll-back of lines scrolled off top |
| WINBACK | Allow scroll-back under Windows |
| BIOSBACK | Capture lines scrolled by BIOS call |
| CLSBACK | Capture erased pages never scrolled up |
| PROTECT | Protect 2nd display page from scroll-back storage |
| SMOOTH | Enable smooth scrolling |
| WINSMOOTH | Allow smooth scrolling under Windows |
| SPEEDUP | Speed up smooth scroll when delaying computer |
+------------+------------------------------------------------------+
Other command line options include:
MODE <decimal mode number> to set the video display mode,
HEIGHT <height> to set the text character height,
PAGE <page> to set the video page,
KEYDEF to enter key reassignment definitions from the keyboard,
KEYFILE <file name> to load key reassignment definitions from a file,
LISTKEYS to list all current key reassignments,
TONE <frequency, duration list> to set the Control-G beep tone,
TEXT or TREATMENT to reset graphics mode text treatments,
SHADOW, BOLD, ITALICS, UNDERLINE or OUTLINE to enable text treatments,
STATUS to report the current video mode, number of colors, etc.,
FEATURES to report the settings of all ANSIPLUS features,
REPORT to show both STATUS and FEATURES, and
HELP to show all keyword options.
24
All the features controlled by SETAPLUS are described in Chapter 2 under
Changing the ANSIPLUS Startup Configuration, starting on page 12, except for
two:
* Key reassignments can be created by SETAPLUS. You will be prompted for the
key to reassign; after that, you type in the corresponding key reassignment,
and terminate it with the End key.
* The ANSIPLUS beep tone can be defined by SETAPLUS. To define the beep sound
from the command line, use SETAPLUS and follow the keyword TONE with zero,
one or more frequencies in Hertz and durations in milliseconds. For example,
SETAPLUS TONE installs the default 880hz 385ms tone, and
SETAPLUS TONE 1397,110,1047,165 defines a two-tone Control-G beep.
To define the beep sound from the SETAPLUS main menu, select Tone Definition and
run through the feature options.
25
EDITING ANSI ESCAPE SEQUENCE PROGRAMS
After using ANSIPLUS for a while, the user will find it desirable to create
short programs for frequently used video modes, color selections or definitions,
key reassignments, etc. The ANSICOM.exe utility program provides this facility:
with it, the user can create and edit small executable ".com" files or small
printable text files that contain ANSI escape sequences. ANSICOM is executed
with the following command:
ANSICOM <filename>
where <filename> is the name of the file to be edited. Your file to edit is
selected using the following rules:
* If no file name is supplied, you will be presented with a menu of ".com"
files to select from.
* If a file name is supplied, and it does not include a file type, a file type
of ".com" is assumed.
* When an existing ".com" file is edited, it is first checked for program code
that outputs the ANSI escape sequences. If this is not found, ANSICOM will
refuse to edit the file.
* If the file to be edited is not a ".com" file, then it is assumed to be a
non-executable printable text file.
* If the named file is not found (including a search of the system PATH),
ANSICOM will ask if a new file is to be created.
Once the file has been properly identified, a full-screen editing display is
presented, and you can go to work. Use the F1 key for context sensitive help.
The ANSICOM full screen editing display automatically parses the user's entries
and identifies the kinds of ANSIPLUS escape sequences entered, including
incomplete escape sequences. ANSICOM will not allow the user to save a file
containing an incomplete escape sequence. Beyond that, it is the user's
responsibility to be sure that the escape sequences entered will do what he
wants.
26
V. ANSIPLUS ESCAPE SEQUENCES
This chapter lists and briefly describes each of the "ANSI" Escape sequences
recognized by ANSIPLUS. They are described in detail in the printed ANSIPLUS
manual. In the table, "#" represents any numeric parameter and "Esc" is the
Escape character (decimal 27, hexadecimal 1Bh):
Control Sequence Description
---------------- -----------
DISPLAY MODE AND CHARACTER SET
Esc [#;#h Set video display mode
Esc [#;#l Reset video display mode
Esc [!#t Select character set height: 8, 14 or 16 scan lines
Esc [!#;...;#e Select graphics mode text treatment options: bold,
underline, slant, shadow, outline, or reverse
Esc [!#v Select video page
CURSOR POSITIONING
Esc [#;#H Set cursor position
Esc [#;#f Set cursor position
Esc [#A Move cursor up
Esc [#B Move cursor down
Esc [#C Move cursor right
Esc [#D Move cursor left
Esc [#s Save cursor position, video mode, video page or colors
Esc [#u Restore cursor position, video mode, page or colors
COLOR SELECTION AND DEFINITION
Esc [#;...;#m Select current color attributes for output characters
Esc [!#;#;#;#;#c Define colors available, select palette, set up color
blinking, restore color definitions or palette
27
Control Sequence Description
---------------- -----------
ERASE, INSERT AND DELETE
Esc [#;#J Clear the screen
Esc [#;#;#K Clear a line
Esc [#;#L Insert lines on the screen or in a column range
Esc [#;#M Delete lines from the screen or a column range
Esc [#;#@ Insert characters on a line or a column range
Esc [#;#P Delete characters from a line or a column range
DRIVER STATUS AND CONTROL
Esc [#;#n Query ANSIPLUS status: cursor position, current color
selection, video mode and number of colors, screen and
character dimensions, color definitions, feature
settings, tone definition, key reassignment, etc.
Esc [!#;...;#d Enable or disable ANSIPLUS driver feature settings
Esc [!#;...;#g Define the Control-G beep tone
Esc [#;...;#p Define key reassignment (also accepts quoted strings)
Besides supporting all the escape sequences accepted by the MS-DOS ANSI.sys
driver, ANSIPLUS accepts additional parameters for many, and includes several
entirely new control functions. See Chapter VI, Technical Notes, for
differences between ANSIPLUS and the ANSI.sys driver.
28
VI. TECHNICAL NOTES
ANSIPLUS AND WINDOWS 3
Users of Windows 3.0 and 3.1 should consider using ANSIPLUS as well. The
ANSIPLUS driver works well with DOS programs under Windows 3, and there are
advantages to using it in Windows 386 Enhanced Mode. Because ANSIPLUS is a CON
driver, local copies of it are included in each Windows 386 Enhanced Mode
virtual 8086. This means that all the ANSIPLUS internal state variables, and
those of its integrated console features, will be local to each virtual 8086, so
there is no way they can interfere with each other.
With DOS 5.0, or with an XMS driver such as QEMM (using LOADHI) or 386MAX,
ANSIPLUS can be loaded into upper memory blocks above 640k to provide a slightly
larger program area below 640k. However, if Windows 3.0 will be run in 386
Enhanced mode, it is strongly recommended that ANSIPLUS (or any other ANSI
driver) not be loaded into high memory using these methods, and that ANSIPLUS
load itself high instead. This is because Windows 3.0 does not localize the XMS
upper memory block area above 640k for its virtual 8086's, and so only one
global copy of ANSIPLUS would be shared among all virtual machines. This can
cause trouble: if, for example, a program in one window selects colors, then
those colors would also be in force for all DOS programs in other windows! This
may have been fixed in Windows 3.1.
The ANSIPLUS driver detects when Windows 3.0 is running, and automatically
disables the screen blanker. Disabling of three other features under Windows is
user-configurable:
* On most computers, screen scroll-back should operate correctly under Windows.
However, a few (buggy) video drivers for Windows 3.0 do not provide a full
32k of text RAM to DOS applications running in a window, and this can be
disastrous when ANSIPLUS tries to save or view lines for scroll-back. Because
of this, the default setting for scroll-back under Windows is to be
disabled. If you run all DOS applications full screen, or if Windows and
scrolling-back in a window work correctly in an experiment on your system,
this feature should be enabled.
* If smooth scrolling does not perform well under Windows, or if there are
other problems, then smooth scrolling can be disabled in Windows. In general,
if scroll-back doesn't work under Windows, then smooth scrolling won't work
either.
* When Windows is running in 386 Enhanced mode, and a DOS program running in
the background outputs a Control-G, the background program's virtual 8086 may
not be running fast enough to accurately time the tone. Because of this, the
tone can drag out and sound strange. Disabling ANSIPLUS tone generation under
Windows restores the original Windows sound driver, but makes the tone
frequency and duration non-changeable.
29
ANSIPLUS EXTENSIONS AND THE ANSI STANDARD
ANSIPLUS uses a number of added control parameters and includes entire new
control functions that are not part of the ANSI X3.64 standard, so do not expect
them to be supported by any other drivers or devices. The following added
ANSIPLUS functions are not standard ANSI:
Esc [!#t Select character set height
Esc [!#;...;#e Select graphics mode text treatment options
Esc [!#v Select video page
Esc [!#;#;#;#;#c Define colors available, select palette, setup blinking
Esc [!#;...;#d Enable or disable ANSIPLUS driver features
Esc [!#;...;#g Define Control-G beep tone
The following ANSIPLUS functions accept standard ANSI parameters, but also
accept added non-standard parameters:
Esc [#;#h Set video mode
Esc [#s Save cursor position, video mode, etc.
Esc [#u Restore cursor position, video mode, etc.
Esc [#;#J Clear the screen
Esc [#;#;#K Clear a line
Esc [#;#L Insert lines on the screen
Esc [#;#M Delete lines from the screen
Esc [#;#@ Insert characters on a line
Esc [#;#P Delete characters from a line
Esc [#;...;#m Select current color attributes for output characters
Esc [#;#n Query ANSIPLUS status: cursor position, colors, etc.
Esc [#;...;#p Define key reassignment
ESCAPE SEQUENCE RECOGNIZER ENHANCEMENTS
To simplify program generation of control sequences, the ANSIPLUS escape
sequence recognizer syntax has been relaxed:
* Blanks between parameters in escape sequences are ignored;
* Commas are allowed as separators in addition to semicolons;
* Either single or double quotes may be used around character parameters;
* Parameter values over 255 (i.e., up to 32,767) are accepted for certain
commands. Plus and minus signs are also accepted.
Unrecognized escape sequences are passed through by the driver unaltered. The
Esc character is trapped only when followed by a left bracket ("["), so programs
that write the escape character (a left arrow) to the screen will continue to do
so after the driver is installed.
30
DIRECT ACCESS TO VIDEO RAM VS. BIOS CALLS
ANSIPLUS uses direct access to video RAM in all VGA/EGA text and most common
graphics modes. However, BIOS calls will be used to output characters for three
classes of graphics modes:
* Modes with 256 colors;
* Modes that require more than 64k bytes of video RAM (i.e., 16 color graphics
modes exceeding 800x600 resolution); and
* Unrecognized (usually CGA or Hercules) graphics modes.
When BIOS calls are used, output is much slower, and "transparent" mode output,
graphics mode text treatments, and insert/delete characters are also not
supported. Future versions of ANSIPLUS may extend direct video RAM access to
some of these modes.
INSTALLATION CHECKS
ANSIPLUS responds to the Int 2Fh test for ANSI.sys installation. When Int 2Fh is
called with AX=1A00h, ANSIPLUS will return AL=0FFh to indicate that ANSI.sys is
installed.
The Int 2Fh response is expanded if registers BX="AN", CX="SI" and DX="++".
Then, in addition to returning AL=0FFh, ANSIPLUS returns a pointer in ES:BX to
the ANSIPLUS Int 29h entry point. A further installation confirmation can be
made by checking the 8 bytes at ES:[BX-12] for the string "ANSIPLUS". The
ANSIPLUS version number will be a 4 character string at ES:[BX-4], containing,
for example, "2.00".
31
HOOKED INTERRUPTS
To implement all its features, ANSIPLUS attaches itself to nine system
interrupts. Two are replaced (1Bh and 29h), and the remaining 7 are supplemented
(i.e., ANSIPLUS calls the original interrupt but extends its function). If
possible, ANSIPLUS should always be installed after any other drivers that take
over any of these interrupts without passing calls through. The following table
lists the ANSIPLUS hooked interrupts and reasons for each:
+------------------------------------------------------------------------------+
| Table 6-1 |
| ANSIPLUS Hooked Interrupts |
+----------------------+-------------------------------------------------------+
|Interrupt Description | Reason |
+----------------------+-------------------------------------------------------+
|1Bh Keyboard Break | Promote Control-Break to front of key buffer |
| | |
|29h DOS Write Char | Faster DOS screen output |
| | |
|09h Keystroke | Screen saver; scroll lock; scroll-back; key buffer |
| | extension; smooth scroll toggle; other special key |
| | processing |
| | |
|10h BIOS Video | Palette/DAC control; beep tone generation; screen |
| | saver; smooth scroll; scroll lock; scroll-back; BIOS |
| | Write TTY ANSI trap |
| | |
|16h BIOS Get Key | Key buffer management; highlighted key echo; scroll- |
| | lock and scroll-back |
| | |
|1Ch User Timer Tick | Screen saver; smooth scroll; color blinking; beep tone|
| | generation |
| | |
|2Fh Multiplex | Installation checks; special functions |
| | |
|33h MS Mouse | Screen saver |
| | |
|74h PS/2 Mouse Event | Screen saver |
+----------------------+-------------------------------------------------------+
32